/**
 * Created by Administrator on 2025/5/7.
 * */
#include "CFAR.h"
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>

BaseObject *createCFAR() {
    return new CFAR();
}

void destroyCFAR(BaseObject *p) {
    SAFE_DELETE(p);
}

CFAR::CFAR(){
    prevStep = -1;
    icrDb.intMap["step"] = 0;
    in_addr_t host_ip = 0x00000000;
    int port = 9002;
    std::thread thd(start_ts, host_ip, port, processStepUpdate, std::ref(icrDb));
    thd.detach();
}

CFAR::~CFAR() {
}

/* 如果使用了DDS_Reader或者DDS_Writer，则对应的input或者output前64个字节为DataFormat head首部 */
void CFAR::onCompute(buffer_table_t *input, buffer_table_t *output) {
    std::this_thread::sleep_for(std::chrono::milliseconds(500));
    int step = icrDb.intMap["step"];
    if (prevStep == step) {
        return ;
    }
    prevStep = step;
    std::cout << "传统算法： 检测目标：1个； 误差：1.05%； 运行时间：66毫秒； step=" << step << ";" << std::endl;
}
